﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using SIGERP_Datos.Properties;
using System.Data.SqlClient;
using SIGERP_Entidades;


namespace SIGERP_Datos
{
    public class HndOrigenesReclamo
    {
        public static List<OrigenReclamo> GetAll()
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.origen_reclamo");
            var origenReclamo = new List<OrigenReclamo>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                OrigenReclamo or = new OrigenReclamo(dtRow);
                origenReclamo.Add(or);
            }
            return origenReclamo;
        }

        public static List<OrigenReclamo> GetAllEnabled()
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.origen_reclamo WHERE habilitado=1 ORDER BY descripcion");
            var origenReclamo = new List<OrigenReclamo>();
            foreach (DataRow dtRow in tabla.Rows)
            {
                OrigenReclamo or = new OrigenReclamo(dtRow);
                origenReclamo.Add(or);
            }
            return origenReclamo;
        }

        public static OrigenReclamo GetOne(int id)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT * FROM dbo.origen_reclamo WHERE id_origen_reclamo=" + id);
            DataRow dtRow = tabla.Rows[0];
            OrigenReclamo or = new OrigenReclamo(dtRow);
            return or;
        }

        public static void Insert(OrigenReclamo origen)
        {

            SqlCommand comando = new SqlCommand();
            comando.CommandText = "INSERT INTO dbo.origen_reclamo(descripcion,habilitado) " + "VALUES (@descripcion,1)";
            comando.Parameters.AddWithValue("@descripcion",origen.descripcion);

            Conexion.ejecutaComando(comando);
        }


        public static void Update(OrigenReclamo origen)
        {

            SqlCommand comando = new SqlCommand();
            comando.CommandText = "UPDATE dbo.origen_reclamo SET descripcion=@descripcion,habilitado=@habilitado WHERE id_origen_reclamo=@id";
            comando.Parameters.AddWithValue("@descripcion", origen.descripcion);
            if (origen.habilitado) comando.Parameters.AddWithValue("@habilitado", 1);
            else comando.Parameters.AddWithValue("@habilitado", 0);
            comando.Parameters.AddWithValue("@id", origen.id);

            Conexion.ejecutaComando(comando);
        }

        public static void delete(OrigenReclamo origen)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "delete from origen_reclamo where id_origen_reclamo=@id";
            comando.Parameters.AddWithValue("@id", origen.id);

            Conexion.ejecutaComando(comando);
        }

        public static bool verificarSiExiste(string descripcion_origen)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT COUNT(*) FROM dbo.origen_reclamo WHERE descripcion='" + descripcion_origen + "'");
            DataRow dtRow = tabla.Rows[0];

            bool existe = false;
            if (Convert.ToInt32(dtRow[0]) > 0) existe = true;
            return existe;
        }

        public static bool verificarSiHayReclamosAsociados(OrigenReclamo o)
        {
            DataTable tabla = Conexion.ejecutaSelect("SELECT COUNT(*) FROM dbo.reclamo WHERE id_origen_reclamo=" + o.id);
            DataRow dtRow = tabla.Rows[0];

            bool existe = false;
            if (Convert.ToInt32(dtRow[0]) > 0) existe = true;
            return existe;
        }

        public static Boolean disable(OrigenReclamo o)
        {
            SqlCommand comando = new SqlCommand();
            comando.CommandText = "UPDATE dbo.origen_reclamo SET habilitado=0 WHERE id_origen_reclamo=@id";
            comando.Parameters.AddWithValue("@id", o.id);

            return Conexion.ejecutaComando(comando);
        }


    }
}
